package com.jiyuren.wheelview.adapter;

import java.util.List;

/**
 * Numeric Wheel adapter.
 */
public class NumericWheelAdapter implements WheelAdapter {

  /** The default min value */
  public static final int DEFAULT_MAX_VALUE = 9;

  /** The default max value */
  private static final int DEFAULT_MIN_VALUE = 0;

  // Values
  private int minValue;
  private int maxValue;

  private List<String> timeLs;

  /**
   * Default constructor
   */
  public NumericWheelAdapter() {
    this(DEFAULT_MIN_VALUE, DEFAULT_MAX_VALUE);
  }

  /**
   * Constructor
   * 
   * @param minValue
   *          the wheel min value
   * @param maxValue
   *          the wheel max value
   */
  public NumericWheelAdapter(int minValue, int maxValue) {
    this.minValue = minValue;
    this.maxValue = maxValue;
  }

  public NumericWheelAdapter(List<String> timeLs) {
    this.timeLs = timeLs;
  }

  @Override
  public Object getItem(int index) {
    if (null != timeLs && !timeLs.isEmpty()) {
      if (index >= 0 && index < getItemsCount()) {
        String value = timeLs.get(index);
        return value;
      }
    } else {
      if (index >= 0 && index < getItemsCount()) {
        int value = minValue + index;
        return value;
      }
    }
    return 0;
  }

  @Override
  public int getItemsCount() {
    if (null != timeLs && !timeLs.isEmpty()) {
      return timeLs.size();
    } else {
      return maxValue - minValue + 1;
    }
  }

  @Override
  public int indexOf(Object o) {
    if (null != timeLs && !timeLs.isEmpty()) {
      return timeLs.indexOf(o);
    } else {
      return (int) o - minValue;
    }
  }
}
